public class ReplacementAlgorithm {


    /**
     * 给你一个有效的 IPv4 地址 address，返回这个 IP 地址的无效化版本。
     *
     * 所谓无效化 IP 地址，其实就是用 "[.]" 代替了每个 "."。
     *
     * 示例 1：
     * 输入：address = "1.1.1.1"
     * 输出："1[.]1[.]1[.]1"
     *
     * 示例 2：
     * 输入：address = "255.100.50.0"
     * 输出："255[.]100[.]50[.]0"
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/defanging-an-ip-address
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     */

    public static void main(String[] args) {
        ReplacementAlgorithm gemAlgorithm = new ReplacementAlgorithm();
        String numJewelsInStones = gemAlgorithm.defangIPaddr("255.100.50.0");
        System.out.println("输出:" + numJewelsInStones);
    }

    /**
     * 第一步：for循环获取address字符串的第一个到最后一个字符 （A）
     * 第二步：判断字符（A）是否与"."字符相同
     * 第三步：相同则在前后分别加上"["字符和"]"字符，然后在中间添加"."字符；不同则直接添加"."字符
     * 第四步：返回形成的StringBuilder
     *
     * <p>
     * 时间复杂度O(n)
     * 控件复杂度O（1）
     * <p>
     * 执行用时 : 0 ms
     * 内存消耗 : 34.4 MB
     */
    public String defangIPaddr(String address) {
        StringBuilder stringBuffer = new StringBuilder();
        for (int i = 0; i < address.length(); i++) {
            char charAt = address.charAt(i);
            if (charAt == '.') {
                stringBuffer.append('[');
                stringBuffer.append(charAt);
                stringBuffer.append(']');
            } else {
                stringBuffer.append(charAt);
            }
        }
        return stringBuffer.toString();
    }

}
